//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#ifndef _ModelsSummaryByLigand_h__
#define _ModelsSummaryByLigand_h__
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#include "ModelTotalResults.h"
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
class ModelsSummaryByLigand { 

  private:

    String*                        toString;
    
    String*                        PrepareAsXMLContent (String* content);

  protected:

    String*                        ligandName;
    String*                        filenameOut;
    String*                        filenameIn;
    TListE <ModelTotalResults>*    models;

  public:

    ModelsSummaryByLigand ();
    ModelsSummaryByLigand (const ModelsSummaryByLigand&);
    ModelsSummaryByLigand (const ModelsSummaryByLigand*);

    ~ModelsSummaryByLigand ();

    void                           LigandName (String* ligandName);
    void                           FilenameOut (String* filenameOut);
    void                           FilenameIn (String* filenameIn);
    void                           Models (TListE <ModelTotalResults>* models);

    String*                        LigandName (void);
    String*                        FilenameOut (void);
    String*                        FilenameIn (void);
    TListE <ModelTotalResults>*    Models (void);

    bool                           LoadXMLFile (void);
    bool                           AddModelFromFile (String* filename, String* name, String* scheme, String* selection);
    bool                           AddModelFromData (String* data, String* name, String* scheme, String* selection);
    bool                           AddModelFromXMLFile (String* filename);
    bool                           ClearModels (void);
    bool                           WriteSummary (void);
    bool                           WriteXMLFile (void);

    String*                        ToString (void);
    
    static String                  ToCVSTableHeader (void);
    String*                        ToCVSTable (String* headerClassifier);
    String*                        ToCVSTable (String* scheme, String* headerClassifier);

    static String                  ToLatexBeginDoc (void);
    static String                  ToLatexEndDoc (void);
    static String                  ToLatexBeginTable (void);
    static String                  ToLatexEndTable (void);
    static String                  ToLatexTableHeader (void);
    String*                        ToLatexTableContent (String* headerClassifier);
    String*                        ToLatexTableContent (String* scheme, String* headerClassifier);

    ModelsSummaryByLigand          operator= (const ModelsSummaryByLigand& modelsSummaryByLigand);

};
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#endif
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
